package com.itheima.task.service;

import com.itheima.model.audit.pojos.AuditTask;
import com.itheima.model.common.dtos.ResponseResult;

/**
 * 延迟队列服务接口
 */
public interface DelayQueueService {

    /**
     * 添加延迟任务
     * @param task 审核任务
     * @param delaySeconds 延迟秒数
     * @return 操作结果
     */
    ResponseResult addDelayTask(AuditTask task, long delaySeconds);

    /**
     * 取消任务
     * @param taskId 任务ID
     * @return 操作结果
     */
    ResponseResult cancelTask(String taskId);

    /**
     * 查询任务状态
     * @param taskId 任务ID
     * @return 任务信息
     */
    ResponseResult getTaskStatus(String taskId);

    /**
     * 扫描并转移到期任务到就绪队列
     * （定时任务调用）
     */
    void scanExpiredTasks();

    /**
     * 消费就绪队列中的任务
     * （定时任务调用）
     */
    void consumeReadyTasks();
}

